home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 February: Tool Chest / Apple Developer CD Series Tool Chest February 1996 (Apple Computer)(1996).iso / Sample Code / AOCE Sample Code / PowerTalk Access Modules / Sample SMSAM / SampleSMSAM Source / 2020HalfGateway / MailBuffer.cp < prev    next >
Encoding:
Text File  |  1995-07-28  |  2.3 KB  |  90 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        MailBuffer.cp
  3.  
  4.     Copyright:    © 1991-1994 by Apple Computer, Inc.
  5.                 All rights reserved.
  6.  
  7.     Part of the AOCE Sample SMSAM Package.  Consult the license
  8.     which came with this software for your specific legal rights.
  9.  
  10. */
  11.  
  12.  
  13.  
  14. #ifndef __DEBUGGINGGEAR__
  15. #include "DebuggingGear.h"
  16. #endif
  17.  
  18. /***********************************|****************************************/
  19.  
  20. #pragma segment MailBuffer
  21.  
  22. /***********************************|****************************************/
  23.  
  24. MailBuffer    SetupMailBuffer ( void * bufferP, unsigned long bufferSize, unsigned long dataSize )
  25. {    MailBuffer    result;
  26.  
  27.     #if debug
  28.     //    Sanity checking
  29.     if ((bufferSize > 16384) || (bufferSize < 0) || ( bufferP == nil ) ) {
  30.         keith << "SetupMailBuffer: (Possible invalid buffer size " << bufferSize << " @" << (const void*) bufferP  << " dataSize=" << dataSize << endl;
  31.     }
  32.     #endif
  33.  
  34.     result.bufferSize = bufferSize;
  35.     result.buffer = (Ptr) bufferP;
  36.     result.dataSize = dataSize;
  37.  
  38.     return result;
  39. }
  40.  
  41. /***********************************|****************************************/
  42.  
  43. MailBuffer    AllocateMailBuffer(long bufferSize, void* where, long dataSize) 
  44. {    MailBuffer    result;
  45.  
  46. #if debug
  47.     //    Sanity checking
  48.     if ((bufferSize > 16384) || (bufferSize < 0)) {
  49.         keith << "AllocateMailBuffer: (Possible invalid buffer size " << bufferSize << " @" << (void*) where << " dataSize=" << dataSize << endl;
  50.     }
  51. #endif
  52.  
  53.     result.bufferSize = bufferSize;
  54.     if ( ( bufferSize > 0 ) && ( where == nil) ) {
  55.         result.buffer = FAILNewPtr ( bufferSize );
  56.         result.bufferSize = GetPtrSize ( result.buffer ); // for safety.
  57.     } else {
  58.         result.buffer = (Ptr) where;
  59.     };
  60.     result.dataSize = dataSize;
  61.  
  62.     return result;
  63. };
  64.  
  65. /***********************************|****************************************/
  66.  
  67. // gets bufferSize from GetPtrSize(where), dataSize = 0
  68. MailBuffer    AllocateMailBuffer ( Ptr where ) 
  69. {    MailBuffer    result;
  70.  
  71.     result.buffer = where;
  72.     if (result.buffer) {
  73.         result.bufferSize = result.dataSize = GetPtrSize(where);
  74.     } else {
  75.         result.bufferSize = result.dataSize = 0;
  76.     };
  77.  
  78.     return result;
  79. };
  80.  
  81. void        DisposeMailBuffer(MailBuffer& buffer) {
  82.     if (buffer.buffer) {
  83.         DeallocatePtr(buffer.buffer);
  84.         buffer.buffer = nil;
  85.     };
  86.     buffer.bufferSize = buffer.dataSize = 0;
  87. };
  88.  
  89. /***********************************|****************************************/
  90.